package rs.ac.uns.ftn.informatika.mbs2.e11031.etaksi.entitet;

import java.io.Serializable;
import java.util.Collection;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

@SuppressWarnings("serial")
@Entity
@Table(name = "kategorija_dozvole")
@NamedQuery(name = "nadjiKategorijuPoNazivu", query = "select k from KategorijaDozvole k where k.naziv = :naziv")
public class KategorijaDozvole implements Serializable {

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "kd_id")
	private Integer id;

	@Column(name = "kd_naziv", columnDefinition = "ENUM('A', 'B', 'C', 'D', 'E')", nullable = false)
	private String naziv;

	@ManyToMany(cascade = { CascadeType.ALL }, mappedBy = "kategorijeDozvola", targetEntity = Vozac.class)
	private Collection<Vozac> vozaci;

	public KategorijaDozvole() {
		super();
	}

	public KategorijaDozvole(String naziv) {
		super();
		this.naziv = naziv;
	}

	public String getNaziv() {
		return naziv;
	}

	public void setNaziv(String naziv) {
		this.naziv = naziv;
	}

	public Collection<Vozac> getVozaci() {
		return vozaci;
	}

	public void setVozaci(Collection<Vozac> vozaci) {
		this.vozaci = vozaci;
	}

	public Integer getId() {
		return id;
	}

	@Override
	public String toString() {
		return "KategorijaDozvole [id=" + id + ", naziv=" + naziv + "]";
	}

}
